<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <h2>生命周期-v2</h2>
    <p>count: {{ count }}</p>
    <button @click="count++">btn</button>
    <button @click="fn">卸载</button>
  </div>


  <script src="../vue2.js"></script>
  <script>

    // 如果出现了一个在html里面用不到的变量，尽量不要写在data里面
    // 直接变成全局的js变量
    let timer;

    new Vue({
      data() {
        return {
          count: 1,
          // timer: null
        }
      },
      methods: {
        fn() {
          this.$destroy() // 主动销毁实例
          // 以后可以通过，组件切换，路由跳转等很多操作来销毁实例
        }
      },

      mounted() {
        timer = setInterval(() => {
          console.log(123);
          this.count++;
        }, 1000)

        // window.addEventListener("scroll", () => {})
      },
      // 卸载的生命周期
      beforeDestroy() {
        // 关闭定时器
        // 断开websocket
        // 移除js的事件监听

        console.log("deforeDestroy");
        clearInterval(timer);
      },
      destroyed() {
        console.log("destroyed");
        
      }
    }).$mount("#app");
  </script>
</body>
</html>